home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / GRAPHICS / PATT-SRC.ZIP / PATTERN.ASM < prev    next >
Encoding:
Assembly Source File  |  1994-09-04  |  2.6 KB  |  158 lines

  1. ;
  2. ; Original idea (pascal) : Bjarke Viksoe
  3. ; Translated/Modified by : Edward C Willemsen of ExEd!
  4. ;
  5.     SMART
  6.         .MODEL Small, Pascal
  7.         Locals
  8.         Jumps
  9.  
  10.         assume  cs:@CODE,ds:@DATA
  11.  
  12.         .DATA
  13.  
  14. xtable    Label    Word
  15.     include    xtab.inc
  16. ytable    Label    Word
  17.     include    ytab.inc
  18.  
  19. ──────────────────────────────────────────────────────────────────────────────
  20.  
  21.         .CODE
  22.  
  23. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  24. ; Set the color palette, the first 128 only :
  25. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  26. SetZPal    PROC
  27.     LOCAL    colval:BYTE
  28.     mov     ax,@DATA
  29.     mov     ds,ax
  30.     mov    dx,3c8h
  31.     xor    al,al
  32.     out    dx,al
  33.     inc    dx
  34.     
  35.     mov    colval,0
  36.     
  37.     mov    cx,63
  38. @@StNxt:
  39.     mov    al,colval
  40.     out    dx,al
  41.     xor    al,al
  42.     out    dx,al
  43.     mov    al,colval
  44.     out    dx,al
  45.     inc    colval
  46.     loop    @@StNxt
  47.  
  48.     out    dx,al
  49.     xor    al,al
  50.     out    dx,al
  51.     mov    al,colval
  52.     out    dx,al
  53.  
  54.     mov    cx,64
  55. @@StNxt2:
  56.     mov    al,colval
  57.     out    dx,al
  58.     xor    al,al
  59.     out    dx,al
  60.     mov    al,colval
  61.     out    dx,al
  62.     dec    colval
  63.     inc    cx
  64.     cmp    cx,127
  65.     jbe    @@StNxt2
  66.     ret
  67. SetZPal    ENDP
  68.  
  69. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  70. ; Generate and show the generated pattern :
  71. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  72. MakePattern    PROC
  73.     ARG    value:BYTE
  74.     LOCAL    ytaller:WORD
  75.     mov    ax,@DATA
  76.     mov    ds,ax
  77.     mov    ytaller,200
  78.     mov     ax,0A000h
  79.     mov     es,ax
  80.     xor     di,di
  81.  
  82.     mov     cl,value
  83.     mov    ch,127
  84. @@yloop:
  85.     mov     dl,160
  86.     lea     si,xtable
  87. @@xloop1:
  88.     mov     bx,WORD PTR ytable
  89.     add     bx,[si]
  90.     mov     ax,bx
  91.     shr     ax,cl
  92.     and     al,ch
  93.     stosb
  94.     add     si,2
  95. @@xloop2:
  96.     mov     bx,WORD PTR ytable
  97.     add     bx,[si]
  98.     mov     ax,bx
  99.     shr     ax,cl
  100.     and     al,ch
  101.     stosb
  102.     add    si,2
  103.     dec     dl
  104.     jnz     @@xloop1
  105.  
  106.     add     WORD PTR @@xloop1+2,2
  107.     add     WORD PTR @@xloop2+2,2
  108.     dec     ytaller
  109.     jnz     @@yloop
  110.  
  111.     lea     di,ytable
  112.     mov     WORD PTR @@xloop1+2,di
  113.     mov     WORD PTR @@xloop2+2,di
  114.     ret
  115. MakePattern    ENDP
  116.  
  117. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  118. ; The MAIN part :
  119. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  120. Start:    mov    ax,@DATA
  121.     mov    ds,ax
  122.     mov    ax,13h
  123.     int    10h
  124.     
  125.     cld
  126.     call    SetZPal
  127.  
  128. @@MnLp:    mov    cx,16
  129. @@MnLpB:
  130.     push    cx
  131.     call    MakePattern, cx
  132.     pop    cx
  133.     dec    cx
  134.     cmp    cx,1
  135.     ja    @@MnLpB
  136.     
  137.     mov    cx,1
  138. @@MnLpC:
  139.     push    cx
  140.     call    MakePattern, cx
  141.     pop    cx
  142.     inc    cx
  143.     cmp    cx,15
  144.     jb    @@MnLpC
  145.  
  146.     mov    ah,1
  147.     int    16h
  148.     jz    @@MnLp
  149.     
  150.     mov    ah,0
  151.     int    16h
  152.  
  153. @@done:    mov    ax,3h
  154.     int    10h
  155.     mov    ax,4c00h
  156.     int    21h
  157.     
  158.     end    Start